/**
 * 包含应用中所有请求接口的函数：接口请求函数
 */
import jsonp from 'jsonp'
import ajax from './ajax' // axios 不能发送jsonp请求
import {message} from 'antd'

// 请求登录(接收的用户名，接收的密码)，此处是分别暴露语法
// const reqLogin =()=>{}请求并调用这个函数
export const reqLogin = (username,password)=>{
    // ajax 内部传入配置对象(当函数使用)
     return ajax({
        method: 'post',
        url: '/login',
        // data 内部的参数是根据接口文档写的（函数内部没有这两个数据，需要通过参数来接收）
        data:{
            username,
            password
        }
    })
    // ajax.post('/login', {username, password})
}



// 天气预报接口
export const reqWeather = (city) => {
    // 执行器函数: 内部去执行异步任务, 
    // 成功了调用resolve(), 失败了不调用reject(), 直接提示错误
    return new Promise((resolve, reject) => { 
        const url = `http://api.map.baidu.com/telematics/v3/weather?location=${city}&output=json&ak=3p49MVra6urFRGOT9s8UBWr2`
        // const url = `https://tianqiapi.com/api?version=v6&appid=85458549&appsecret=2jbbxGwu&city=${city}`
        jsonp(url, {}, (error, data) => {
            // console.log(data,error)
            if(!error && data.error===0){
                // 接收需要显示的参数
                const {dayPictureUrl, weather} = data.results[0].weather_data[0]
                resolve({dayPictureUrl, weather})
            }else{
                message.error('获取天气失败')
            }
        })
      }) 
}


// 获取分类列表数据
export const reqcategoryList = () =>{
    return ajax({
        method: 'get',
        url: '/manage/category/list'
    })
}


// 添加分类
export const reqAddCategory = (categoryName) =>{
    return ajax({
        method:'post',
        url:'/manage/category/add',
        data:{
            categoryName 
        }
    })
}


// 更新分类
export const reqUpdateCategory = ({categoryId, categoryName}) => {
    return ajax({
        method:'post',
        url:'/manage/category/update',
        data:{
            categoryId,
            categoryName
        }
    })
}


// 根据分类ID获取分类
export const reqCategoryId = (categoryId) => {
    return ajax({
        method:'get',
        url:'/manage/category/info',
        params:{
            categoryId
        }
    })
}



// 获取商品列表数据
export const reqProductList = ( pageNum, pageSize ) => {
    return ajax({
        method:'get',
        url:'/manage/product/list',
        params:{
            pageNum,
            pageSize
        }
    })
}

// 根据Name/desc搜索产品分页列表
export const reqSearchList = ({pageNum, pageSize, searchName, searchType}) => {
    return ajax({
        method:'get',
        url:'/manage/product/search',
        params:{
            pageNum,
            pageSize,
            // 加上[], 是从普通的字符串变为变量
            [searchType]: searchName
        }
    })
}


// 对商品进行上架/下架处理
export const reqUpdateGoodStatus = (productId, status) => {
    return ajax({
        method:'post',
        url:'/manage/product/updateStatus',
        data:{
            productId,
            status
        }
    })
}


// 删除图片
export const reqDeleteImg = (name) => {
    return ajax({
        method:'post',
        url:'/manage/img/delete',
        data:{
            name
        }
    })
}

// 添加/更新商品(如果传入的是一个对象，data中直接写对象的数据)
export const reqAddUpdateProduct = (product) => {
    return ajax({
        method:'post',
        url:'/manage/product/' + (product._id ? 'update' : 'add'),
        data:product
    })
}


// 获取角色列表
export const reqGetRoleList = () => {
    return ajax({
        method:'get',
        url:'/manage/role/list'
    })
}

// 添加角色
export const reqAddRole = (roleName) => {
    return ajax({
        method:'post',
        url:'/manage/role/add',
        data:{
            roleName
        }
    })
}

// 更新角色权限
export const reqUpdataRole = (role) => {
    return ajax({
        method:'post',
        url:'/manage/role/update',
        data:role
    })
}

// 获取用户信息列表
export const reqUserList = () => {
    return ajax({
        method:'get',
        url:'/manage/user/list'
    })
}

// 添加用户
export const reqAddUser = (username, password, phone, email, role_id) => {
    return ajax({
        method:'post',
        url:'/manage/user/add',
        data:{
            username, 
            password, 
            phone, 
            email, 
            role_id
        }
    })
}

// 删除用户
export const reqDeleteUser = (userId) => {
    return ajax({
        method:'post',
        url:'/manage/user/delete',
        data:{
            userId
        }
    })
}

// 更新用户
export const reqUpdateUser = (user) => {
    return ajax({
        method:'post',
        url:'/manage/user/update',
        data:user
    })
}